General Menu Guidelines

The NeXT menu system is hierarchical.  Applications should make use of the hierarchy to arrange commands in distinct, functionally identifiable menus.  A well-defined set of hierarchical menus aids users both in finding the commands they need and in understanding the structure of the application.

New guidelines for naming and arranging commands are listed below:

·	A menu should never have less than two commands (unless it grows and shrinks dynamically and happens to shrink to less than two).  If an application has a menu with only one item in it, that item should be bumped up one level and replace the command that brings up the menu.  (A specific example of this is discussed under the help for  ªInfo Menu.º).

·	Each command name should be unique.  No two commands, even if they're in different menus, should be worded alike.

·	When a menu command won't work, it should either (a) be dimmed or (b) bring up a panel explaining why the command is inappropriate and offering assistance.  The panel must provide more information than just that the command won't work, since that information could more directly be conveyed by dimming the command.  When a command is completely inoperative (i.e., when it won't even bring up a panel), it should be dimmed.

·	Menu commands should not use arbitrary graphical devices, such as check marks, to show state.  There's almost always a more appropriate way to display current state in our interfaceÐfor example, by using buttons or check boxes in a panel or by designing objects that can be directly manipulated (such as those in WriteNow's ruler).  If the meaning of a command changes with a change of state, the command should also change (e.g., from ªShow Rulerº to ªHide Rulerº).

In the Windows menu, commands for document windows are marked with a unique icon that's independently associated with the window (as the symbol on the window's close button).  The menu doesn't establish the connection between the window and the symbol, but merely borrows it.

The area to the right of a command where keyboard alternatives and submenu symbols are displayed should never be taken over by other graphical devices.